/**
 * @param {number[]} nums
 * @return {number}
 */
var findMin = function (nums) {
  let left = 0, right = nums.length - 1

  while (left < right) {
    let mid = Math.floor((left + right) / 2)

    //如果中间值大于右边值，最小值在右边
    if (nums[mid] > nums[right]) {
      left = mid + 1
    } else {//如果中间值小于右边值，最小值在左半部分（包括 mid）
      right = mid
    }
  }

  //最终left等于right，即最小值的位置
  return nums[left]
};